package server.db;

import java.sql.*;

public class CreateTables {
	private static Connection c;
	
	public CreateTables(){
		
	}

	public void createTableUser() {

		// creo la variable para la conexcion
//		Connection c = null;
		try {
//			c = DriverManager.getConnection("jdbc:sqlite:tablas.usuarios");
			Statement st = c.createStatement();
			// creo una tabla en la base de datos
			String sql = "CREATE TABLE USUARIOS"
					+ "(ID INT PRIMARY KEY     NOT NULL,"
					+ " NOMBRE           TEXT    NOT NULL, "
					+ " APELLIDO           TEXT    NOT NULL, "
					+ " USUARIO            TEXT     NOT NULL, "
					+ " PASSWORD            TEXT     NOT NULL, "
					+ " PREGUNTA            TEXT     NOT NULL, "
					+ " RESPUESTA            TEXT     NOT NULL, "
					+ " FECHAALTA        DATETIME, "
					+ " ESTADO            INTEGER     NOT NULL)";

			st.executeUpdate(sql);
			System.out.println("Tabla de Usuarios creada correctamente");

		} catch (Exception e) {
			System.err.println(e.getClass().getName() + ": " + e.getMessage());
		}

	}

	public void createTableAmigos() {
		try {
//			c = DriverManager.getConnection("jdbc:sqlite:tablas/amigos");
			Statement st = c.createStatement();
			String createTable = "CREATE TABLE AMIGOS "
					+ "(USER INT,"
					+ "AMIGO INT)";
			st.executeUpdate(createTable);
			System.out.println("Tabla de Amigos creada Correctamente");

		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	public void createTableLogs() {
		try {
//			c = DriverManager.getConnection("jdbc:sqlite:tablas.logs");
			Statement st = c.createStatement();
			String createTable = "CREATE TABLE LOGS " +
			"(ID PRIMARY KEY NOT NULL," +
			"historial Date NOT NULL)";

			st.executeUpdate(createTable);
			System.out.println("Table de Logs creada Correctamente");

		} catch (Exception e) {
			e.printStackTrace();
		}

	}
	
	public void createTableRepositorios(){
	try{
//		c = DriverManager.getConnection("jdbc:sqlite:tablas.repositorios");
		Statement st = c.createStatement();
		String createTable = "CREATE TABLE REPOSITORIO "+
				"(ID PRIMARY KEY NOT NULL,"+
				"ID_AMIGO NOT NULL," + 
				"MENSAJES_PENDIENTES TEXT,"+
				"INVITACIONES_PENDIENTES TEXT)";
	st.executeUpdate(createTable);
	System.out.println("Table de Repositorios creada Correctamente");
	
	}catch(Exception e){
		e.printStackTrace();
	}
	
	}


	public static void main(String[] args) throws SQLException, ClassNotFoundException {
		try{
			//Coloco la DB en memoria
			// patron de dise�o singleton, clase consola
			// plugin subeclipse (SVN)
			Class.forName("org.sqlite.JDBC");
			//se establece la conexion a la DB
			c = DriverManager.getConnection("jdbc:sqlite:tablas/chat.db");
			System.out.println("apertura de base de datos correcta ! ");
		CreateTables cm = new CreateTables();
		cm.createTableUser();
		cm.createTableAmigos();
		cm.createTableLogs();
		cm.createTableRepositorios();
		System.out.println("Todas las tablas se han creado correctamente");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
		
	
}

